package wiki.generic.med;

import java.util.HashMap;

import wiki.generic.io.Element;
import wiki.generic.layout.LayoutPrototypeFactory;
import wiki.generic.layout.LayoutPrototypeWriter;

/**
 * 
 * @author <p><strong>JwTeam</strong></p> 
 * Interfaccia che fornisce i metodi necessari alla visualizzazione
 */
public interface ViewingService {

	/**
	 * 
	 * @param corso nome corso
	 * @param id id univo del corso
	 * @return le proprieta del corso
	 */
	public String getParameter(String corso,String id);

	/**
	 * 
	 * @return mappa con gli stili (css)
	 */
	public HashMap<String, String> getStyleMap();
	
	/**
	 * 
	 * @param corso nome corso
	 * @param id id univo del corso
	 * @param value nuovo valore per i parametri
	 */
	public void setParameter(String corso,String id, String value);
	
	/**
	 * 
	 * @param layout
	 * @return LayoutPrototypeWriter
	 * @see LayoutPrototypeWriter
	 */
	public LayoutPrototypeWriter getLayoutWriter(String layout);

	/**
	 * 
	 * @param lfactory un implementazione di LayoutPrototypeFactory
	 * @see LayoutPrototypeFactory
	 */
	public void setLfactory(LayoutPrototypeFactory lfactory);

	/**
	 * 
	 * @param type tipo contenuto
	 * @param ID id univoco contenuto
	 * @return Elemento richiesto
	 * @see Element
	 */
	public Element getContentMainParameterbyID(String type, int ID);

	/**
	 * 
	 * @param type tipo elemento
	 * @return mappa degli elementi
	 * @see Element
	 */
	public HashMap<Integer, Element> getElementsMapbyType(String type);
}
